﻿using LinqToBing.Bing.Wrapper.Search;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using LinqToBing.Bing.Wrapper.Interfaces;
using LinqToBing.Bing.Wrapper.Enums;
using System.Collections.Generic;

namespace LinqToBing.Bing.Test
{
    
    
    /// <summary>
    ///This is a test class for SearchRequestBaseTest and is intended
    ///to contain all SearchRequestBaseTest Unit Tests
    ///</summary>
    [TestClass()]
    public class SearchRequestBaseTest
    {


        private TestContext testContextInstance;

        /// <summary>
        ///Gets or sets the test context which provides
        ///information about and functionality for the current test run.
        ///</summary>
        public TestContext TestContext
        {
            get
            {
                return testContextInstance;
            }
            set
            {
                testContextInstance = value;
            }
        }

        #region Additional test attributes
        // 
        //You can use the following additional attributes as you write your tests:
        //
        //Use ClassInitialize to run code before running the first test in the class
        //[ClassInitialize()]
        //public static void MyClassInitialize(TestContext testContext)
        //{
        //}
        //
        //Use ClassCleanup to run code after all tests in a class have run
        //[ClassCleanup()]
        //public static void MyClassCleanup()
        //{
        //}
        //
        //Use TestInitialize to run code before running each test
        //[TestInitialize()]
        //public void MyTestInitialize()
        //{
        //}
        //
        //Use TestCleanup to run code after each test has run
        //[TestCleanup()]
        //public void MyTestCleanup()
        //{
        //}
        //
        #endregion


        internal virtual SearchRequestBase CreateSearchRequestBase()
        {
            // TODO: Instantiate an appropriate concrete class.
            SearchRequestBase target = null;
            return target;
        }

        /// <summary>
        ///A test for Execute
        ///</summary>
        [TestMethod()]
        public void ExecuteTest()
        {
            SearchRequestBase target = CreateSearchRequestBase(); // TODO: Initialize to an appropriate value
            ISearchResult expected = null; // TODO: Initialize to an appropriate value
            ISearchResult actual;
            actual = target.Execute();
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for AppId
        ///</summary>
        [TestMethod()]
        public void AppIdTest()
        {
            SearchRequestBase target = CreateSearchRequestBase(); // TODO: Initialize to an appropriate value
            string expected = string.Empty; // TODO: Initialize to an appropriate value
            string actual;
            target.AppId = expected;
            actual = target.AppId;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for CanExecute
        ///</summary>
        [TestMethod()]
        public void CanExecuteTest()
        {
            SearchRequestBase target = CreateSearchRequestBase(); // TODO: Initialize to an appropriate value
            bool actual;
            actual = target.CanExecute;
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for Count
        ///</summary>
        [TestMethod()]
        public void CountTest()
        {
            SearchRequestBase target = CreateSearchRequestBase(); // TODO: Initialize to an appropriate value
            Nullable<int> expected = new Nullable<int>(); // TODO: Initialize to an appropriate value
            Nullable<int> actual;
            target.Count = expected;
            actual = target.Count;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        internal virtual SearchRequestBase_Accessor CreateSearchRequestBase_Accessor()
        {
            // TODO: Instantiate an appropriate concrete class.
            SearchRequestBase_Accessor target = null;
            return target;
        }

        /// <summary>
        ///A test for Executed
        ///</summary>
        [TestMethod()]
        [DeploymentItem("LinqToBing.Bing.Wrapper.dll")]
        public void ExecutedTest()
        {
            PrivateObject param0 = null; // TODO: Initialize to an appropriate value
            SearchRequestBase_Accessor target = new SearchRequestBase_Accessor(param0); // TODO: Initialize to an appropriate value
            bool expected = false; // TODO: Initialize to an appropriate value
            bool actual;
            target.Executed = expected;
            actual = target.Executed;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for Guid
        ///</summary>
        [TestMethod()]
        public void GuidTest()
        {
            SearchRequestBase target = CreateSearchRequestBase(); // TODO: Initialize to an appropriate value
            Guid actual;
            actual = target.Guid;
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for InvokeUrl
        ///</summary>
        [TestMethod()]
        public void InvokeUrlTest()
        {
            SearchRequestBase target = CreateSearchRequestBase(); // TODO: Initialize to an appropriate value
            string actual;
            actual = target.InvokeUrl;
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for Offset
        ///</summary>
        [TestMethod()]
        public void OffsetTest()
        {
            SearchRequestBase target = CreateSearchRequestBase(); // TODO: Initialize to an appropriate value
            Nullable<int> expected = new Nullable<int>(); // TODO: Initialize to an appropriate value
            Nullable<int> actual;
            target.Offset = expected;
            actual = target.Offset;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for Query
        ///</summary>
        [TestMethod()]
        public void QueryTest()
        {
            SearchRequestBase target = CreateSearchRequestBase(); // TODO: Initialize to an appropriate value
            string expected = string.Empty; // TODO: Initialize to an appropriate value
            string actual;
            target.Query = expected;
            actual = target.Query;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for SearchProtocol
        ///</summary>
        [TestMethod()]
        public void SearchProtocolTest()
        {
            SearchRequestBase target = CreateSearchRequestBase(); // TODO: Initialize to an appropriate value
            SearchProtocol expected = new SearchProtocol(); // TODO: Initialize to an appropriate value
            SearchProtocol actual;
            target.SearchProtocol = expected;
            actual = target.SearchProtocol;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for Sources
        ///</summary>
        [TestMethod()]
        public void SourcesTest()
        {
            SearchRequestBase target = CreateSearchRequestBase(); // TODO: Initialize to an appropriate value
            List<SearchSource> expected = null; // TODO: Initialize to an appropriate value
            List<SearchSource> actual;
            target.Sources = expected;
            actual = target.Sources;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }
    }
}
